import Vue from 'vue'
import Router from 'vue-router'
import { isLoggedIn } from '@/utils/auth'

Vue.use(Router)

const router = new Router({
  routes: [
    // 默认重定向到首页
    {
      path: '/',
      redirect: '/home'
    },
    //登录
    {
      path: '/login',
      name: 'login',
      component: ()=> import('@/components/LoginView.vue')
    },
    // 首页
    {
      path: '/home',
      name: 'home',
      component: ()=> import('@/components/home.vue'),
      meta: { requiresAuth: false }  // 主页不需要认证即可访问
    },
  ]
})

// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  // 如果是登录页面，已登录则跳转首页
  if (to.path === '/login') {
    if (isLoggedIn()) {
      next({ name: 'home' })
    } else {
      next()
    }
    return
  }
  
  // 如果路由需要认证
  if (to.matched.some(record => record.meta.requiresAuth)) {
    if (!isLoggedIn()) {
      // 未登录，跳转到登录页面
      next({
        path: '/login',
        query: { redirect: to.fullPath }
      })
    } else {
      // 已登录，允许访问
      next()
    }
  } else {
    // 不需要认证的路由，直接放行
    next()
  }
})

export default router